package com.baili.service.productionorder;

import java.util.List;
import java.util.Map;

import com.baili.dto.ProductOrder;


/** 
 * @author iceX
 * @version 创建时间：2016年3月25日 上午11:31:18 
 * @Name: ProductionOrderService.java
 */
public interface ProductionOrderService{

	/**
	 * 生产通知单列表(查看)
	 * @return
	 */
	public List<Map<String ,Object>> getProductionOrderList(ProductOrder productOrder);
	/**
	 * 生产通知单列表(审批)
	 * @return
	 */
	public List<Map<String ,Object>> getProductionOrderListArp(ProductOrder productOrder);
 
	/**
	 * 生产通知单条数
	 * @return
	 */
	public int getProductionOrderCount();
	
	/**
	 * 根据id查询生产通知单详情
	 * @return
	 */
	public List queryProductionOrderDetailsList(ProductOrder productOrder);

	/**
	 * 根据时间查询质检详情
	 * @return
	 */
	public List getqualityChecksByTime(ProductOrder productOrder);
	/**
	 * 根据产品号查询质检详情
	 * @return
	 */
	public List getqualityChecksByproductNo(String productNo);
	/**
	 * 根据款号查询质检详情
	 * @return
	 */
	public List getqualityChecksByNumbers(String date);
	/**
	 * 根据工序查询质检详情
	 * @return
	 */
	public List getqualityChecksByProcess(String process);

	/**
	 * 生产通知单表查询-计划进度查看通过排程号查询
	 * @return
	 */
	public List getProductionOrderByScheduleNo(ProductOrder scheduleNo);
	/**
	 * 公司领导-生产通知单表查询-审批通过/驳回
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	public void updateRoundTypeByProductCode(ProductOrder productOrder);
	/**
	 * 公司领导-生产通知单表查询-计划进度审批-规格、数量、轮次查询
	 * @return
	 */
	public List queryProductionOrderParameter(ProductOrder order);

	/**
	 * 公司领导-生产通知单表查询-计划进度审批-拆分轮次
	 * @return
	 */
	public void splitRound(ProductOrder order);
	/**
	 * 公司领导-生产通知单表查询-计划进度审批-拆分轮次
	 * @return
	 */
	public void splitRoundByFinished(ProductOrder order);

	public List<Map<String,Object>> selectProduction(String startTime,String endTime);

	public List selectUserByRoleType();

	public int getUsersTypeCount();

	/**
	 * 公司领导-生产通知单表查询-计划进度审批-drag轮次
	 * @return
	 */
	public ProductOrder getProductionOrderByRound(ProductOrder productOrder);

	/**
	 * 公司领导-生产通知单表查询-计划进度审批-拖动轮次
	 * @return
	 */
	public void updateProductionOrder(ProductOrder productOrder);
	
	/**
	 * 公司领导-统计分析--多条件查询质检
	 * @return
	 */
	public List getqualityChecksByMany(String productCode, String processName,
			String startTime, String endTime);
	
	/**
	 * 工序列表
	 * @return
	 */
	public List getPrList();
	
	public List selectSizeAndCount(String code);
	
	public List selectCount(String code);

	public ProductOrder getProductionOrderById(ProductOrder productOrder);

	public List selectProductTeamList();

	public void mergeRound(ProductOrder productOrder);
	
	public ProductOrder getOrderById(ProductOrder productOrder) ;
	
	public void deleteProductOrderById(ProductOrder order);
	
	public ProductOrder getProductionOrderByRoundAndProductCode(ProductOrder productOrder);
	
}
